<?php

/**
 * Błąd zgłoszony przez użytkownika
 * @author Anna Rybka
 *
 */
class Ticket {
	
	private $descriptions;
	private $superUser;
	private $id;
	private $usid;
	private $active;
	
	public function __construct() {
		$this->descriptions = array ();
	}
	
	/**
	 * Metoda ustawia flagę mówiąca czy zgłoszenie jest aktywne
	 * @param $active flaga mówiąca czy zgłoszenie jest aktywne
	 */
	function setActive($active) {
		$this->active = $active;
	}
	
	/**
	 * Metoda zwraca flagę mówiąca czy zgłoszenie jest aktywne
	 * @return flaga mówiąca czy zgłoszenie jest aktywne
	 */
	function isActive() {
		return $this->active;
	}
	
	/**
	 * Metoda zwraca identyfikator serwisu uzytkownika
	 * @return identyfikator serwisu uzytkownika
	 */
	function getUsid() {
		return $this->usid;
	}
	
	/**
	 * Metoda ustawia identyfikator zgloszenia
	 * @param $id identyfikator zgloszenia
	 */
	function setId($id) {
		$this->id = $id;
	}
	
	/**
	 * Metoda zwraca identyfikator zgloszenia
	 * @return identyfikator zgloszenia
	 */
	function getId() {
		return $this->id;
	}
	
	/**
	 * Metoda dodaje opisu do zgloszenia
	 * @param $user użytkownik dodający opis
	 * @param $desc opis
	 */
	public function addDescription(User $user, $desc) {
		$this->descriptions [] = new TicketDescription ( $user, $desc );
	}
	
	/**
	 * Metoda dodaje opisu do zgloszenia
	 * @param $desc opis
	 */
	public function add(TicketDescription $desc) {
		$desc->setTid ( $this->id );
		$this->descriptions [] = $desc;
	}
	
	/**
	 * Metoda zwraca listę opisów dla zgłoszenia
	 * @return lista opisów dla zgłoszenia
	 */
	public function getDescriptions() {
		return $this->descriptions;
	}
	
	/**
	 * Metoda ustawia super użytkownika dla zgloszenia
	 * @param $superUser super użytkownik
	 */
	function setSuperUser($superUser) {
		$this->superUser = $superUser;
	}
	
	/**
	 * Metoda zwraca super użytkownika przydzielonego przez administratora
	 * @return obiekt super użytkownika
	 */
	function getSuperUser() {
		return $this->superUser;
	}
	/**
	 * Metoda ustawia identyfikator wykupionego serwisu do ktorego zostało przypisane zgłoszenie
	 * @param $usid identyfikator wykupionego serwisu do ktorego zostało przypisane zgłoszenie
	 */
	function setUsid($usid) {
		$this->usid = $usid;
	}
	
	/**
	 * Metoda ustawia listę opisów
	 * @param $descriptions lista opisów
	 */
	function setDescriptions($descriptions) {
		$this->descriptions = $descriptions;
	}
}

?>